def analyze_test_log(log_file):
    # 初始化统计变量
    total = 0
    pass_count = 0
    pass_durations = []  # 存储通过用例的耗时（ms）

    with open(log_file, "r", encoding="utf-8") as f:
        for line in f:
            line = line.strip()
            if not line:
                continue  # 跳过空行

            # 按 | 分割字段（根据实际日志分隔符调整，比如空格、逗号）
            parts = line.split("|")
            if len(parts) < 4:
                continue  # 跳过格式错误的行

            # 提取核心字段（去掉前后空格）
            result = parts[2].strip()
            duration_str = parts[3].strip().replace("ms", "")  # 去掉 ms 单位

            # 统计总用例数
            total += 1

            # 处理通过用例（统计耗时、通过数）
            if result == "PASS":
                pass_count += 1
                try:
                    pass_durations.append(int(duration_str))  # 转换为整数（毫秒）
                except:
                    continue  # 耗时格式错误则跳过

    # 计算核心指标（避免除零错误）
    pass_rate = (pass_count / total) * 100 if total > 0 else 0.0
    fail_rate = 100.0 - pass_rate
    fail_count = total - pass_count
    avg_pass_time = sum(pass_durations) / len(pass_durations) if pass_durations else 0.0

    # 输出结果
    print("=" * 50)
    print("测试日志分析结果")
    print("=" * 50)
    print(f"总用例数：{total}")
    print(f"通过用例数：{pass_count}")
    print(f"失败用例数：{fail_count}")
    print(f"通过率：{pass_rate:.2f}%")
    print(f"失败率：{fail_rate:.2f}%")
    print(f"通过用例平均耗时：{avg_pass_time:.2f}ms")
    print("=" * 50)


# 直接指定日志文件路径（修改为你的日志路径）
analyze_test_log("test.log")